/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package co.com.entidad;

import java.io.Serializable;
import java.util.Date;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;

/**
 *
 * @author 841756
 */
@Entity
@Table(name = "tblincapacidades")
@NamedQueries({
    @NamedQuery(name = "Tblincapacidades.findAll", query = "SELECT t FROM Tblincapacidades t"),
    @NamedQuery(name = "Tblincapacidades.findByIdeEmp", query = "SELECT t FROM Tblincapacidades t WHERE t.tblincapacidadesPK.ideEmp = :ideEmp"),
    @NamedQuery(name = "Tblincapacidades.findByIdeIncapacidad", query = "SELECT t FROM Tblincapacidades t WHERE t.tblincapacidadesPK.ideIncapacidad = :ideIncapacidad"),
    @NamedQuery(name = "Tblincapacidades.findByConsecutivo", query = "SELECT t FROM Tblincapacidades t WHERE t.consecutivo = :consecutivo"),
    @NamedQuery(name = "Tblincapacidades.findByIncapacidad", query = "SELECT t FROM Tblincapacidades t WHERE t.incapacidad = :incapacidad"),
    @NamedQuery(name = "Tblincapacidades.findByNroCertificado", query = "SELECT t FROM Tblincapacidades t WHERE t.nroCertificado = :nroCertificado"),
    @NamedQuery(name = "Tblincapacidades.findByFechaInicio", query = "SELECT t FROM Tblincapacidades t WHERE t.fechaInicio = :fechaInicio"),
    @NamedQuery(name = "Tblincapacidades.findByFechaFinal", query = "SELECT t FROM Tblincapacidades t WHERE t.fechaFinal = :fechaFinal"),
    @NamedQuery(name = "Tblincapacidades.findByTotalDias", query = "SELECT t FROM Tblincapacidades t WHERE t.totalDias = :totalDias"),
    @NamedQuery(name = "Tblincapacidades.findByDiasOrd", query = "SELECT t FROM Tblincapacidades t WHERE t.diasOrd = :diasOrd"),
    @NamedQuery(name = "Tblincapacidades.findByDiasDf", query = "SELECT t FROM Tblincapacidades t WHERE t.diasDf = :diasDf"),
    @NamedQuery(name = "Tblincapacidades.findByMotivo", query = "SELECT t FROM Tblincapacidades t WHERE t.motivo = :motivo"),
    @NamedQuery(name = "Tblincapacidades.findByDescontar", query = "SELECT t FROM Tblincapacidades t WHERE t.descontar = :descontar")})
public class Tblincapacidades implements Serializable {
    private static final long serialVersionUID = 1L;
    @EmbeddedId
    protected TblincapacidadesPK tblincapacidadesPK;
    @Basic(optional = false)
    @NotNull
    @Column(name = "consecutivo")
    private long consecutivo;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 15)
    @Column(name = "incapacidad")
    private String incapacidad;
    @Basic(optional = false)
    @NotNull
    @Column(name = "nro_certificado")
    private long nroCertificado;
    @Basic(optional = false)
    @NotNull
    @Column(name = "fecha_inicio")
    @Temporal(TemporalType.DATE)
    private Date fechaInicio;
    @Basic(optional = false)
    @NotNull
    @Column(name = "fecha_final")
    @Temporal(TemporalType.DATE)
    private Date fechaFinal;
    @Basic(optional = false)
    @NotNull
    @Column(name = "total_dias")
    private long totalDias;
    @Basic(optional = false)
    @NotNull
    @Column(name = "dias_ord")
    private long diasOrd;
    @Basic(optional = false)
    @NotNull
    @Column(name = "dias_df")
    private long diasDf;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 100)
    @Column(name = "motivo")
    private String motivo;
    @Size(max = 15)
    @Column(name = "descontar")
    private String descontar;
    @JoinColumn(name = "cod_compania", referencedColumnName = "cod_compania")
    @ManyToOne(optional = false)
    private Tblcompania codCompania;
    @JoinColumn(name = "id_estado", referencedColumnName = "id_estado")
    @ManyToOne(optional = false)
    private TblEstado idEstado;

    public Tblincapacidades() {
    }

    public Tblincapacidades(TblincapacidadesPK tblincapacidadesPK) {
        this.tblincapacidadesPK = tblincapacidadesPK;
    }

    public Tblincapacidades(TblincapacidadesPK tblincapacidadesPK, long consecutivo, String incapacidad, long nroCertificado, Date fechaInicio, Date fechaFinal, long totalDias, long diasOrd, long diasDf, String motivo) {
        this.tblincapacidadesPK = tblincapacidadesPK;
        this.consecutivo = consecutivo;
        this.incapacidad = incapacidad;
        this.nroCertificado = nroCertificado;
        this.fechaInicio = fechaInicio;
        this.fechaFinal = fechaFinal;
        this.totalDias = totalDias;
        this.diasOrd = diasOrd;
        this.diasDf = diasDf;
        this.motivo = motivo;
    }

    public Tblincapacidades(String ideEmp, String ideIncapacidad) {
        this.tblincapacidadesPK = new TblincapacidadesPK(ideEmp, ideIncapacidad);
    }

    public TblincapacidadesPK getTblincapacidadesPK() {
        return tblincapacidadesPK;
    }

    public void setTblincapacidadesPK(TblincapacidadesPK tblincapacidadesPK) {
        this.tblincapacidadesPK = tblincapacidadesPK;
    }

    public long getConsecutivo() {
        return consecutivo;
    }

    public void setConsecutivo(long consecutivo) {
        this.consecutivo = consecutivo;
    }

    public String getIncapacidad() {
        return incapacidad;
    }

    public void setIncapacidad(String incapacidad) {
        this.incapacidad = incapacidad;
    }

    public long getNroCertificado() {
        return nroCertificado;
    }

    public void setNroCertificado(long nroCertificado) {
        this.nroCertificado = nroCertificado;
    }

    public Date getFechaInicio() {
        return fechaInicio;
    }

    public void setFechaInicio(Date fechaInicio) {
        this.fechaInicio = fechaInicio;
    }

    public Date getFechaFinal() {
        return fechaFinal;
    }

    public void setFechaFinal(Date fechaFinal) {
        this.fechaFinal = fechaFinal;
    }

    public long getTotalDias() {
        return totalDias;
    }

    public void setTotalDias(long totalDias) {
        this.totalDias = totalDias;
    }

    public long getDiasOrd() {
        return diasOrd;
    }

    public void setDiasOrd(long diasOrd) {
        this.diasOrd = diasOrd;
    }

    public long getDiasDf() {
        return diasDf;
    }

    public void setDiasDf(long diasDf) {
        this.diasDf = diasDf;
    }

    public String getMotivo() {
        return motivo;
    }

    public void setMotivo(String motivo) {
        this.motivo = motivo;
    }

    public String getDescontar() {
        return descontar;
    }

    public void setDescontar(String descontar) {
        this.descontar = descontar;
    }

    public Tblcompania getCodCompania() {
        return codCompania;
    }

    public void setCodCompania(Tblcompania codCompania) {
        this.codCompania = codCompania;
    }

    public TblEstado getIdEstado() {
        return idEstado;
    }

    public void setIdEstado(TblEstado idEstado) {
        this.idEstado = idEstado;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (tblincapacidadesPK != null ? tblincapacidadesPK.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Tblincapacidades)) {
            return false;
        }
        Tblincapacidades other = (Tblincapacidades) object;
        if ((this.tblincapacidadesPK == null && other.tblincapacidadesPK != null) || (this.tblincapacidadesPK != null && !this.tblincapacidadesPK.equals(other.tblincapacidadesPK))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "co.com.entidad.Tblincapacidades[ tblincapacidadesPK=" + tblincapacidadesPK + " ]";
    }
    
}
